/*
 * Este es mi primer hack--->fuck
 */
package com.tellus.util;

import java.io.Serializable;
import java.util.Date;

import com.tellus.asistencia.model.dao.BreakDao;
import com.tellus.asistencia.model.dao.LogueoDao;
import com.tellus.asistencia.model.dao.TipoBreakDao;
import com.tellus.asistencia.model.vo.Break;
import com.tellus.asistencia.model.vo.Logueo;
import com.tellus.asistencia.model.vo.TipoBreak;
import com.tellus.campaign.model.dao.CampaignDao;
import com.tellus.seguridad.model.vo.Usuario;


public class Asistencia implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private BreakDao breakDao;
	//private EmployeeDao employeeDao;
	private CampaignDao campaignDao;
	private LogueoDao logueoDao;
	private TipoBreakDao tipoBreakDao;
	
	public Asistencia(){
	
	}
	
	public Logueo iniciaLogueo(Usuario usuario) {

		Logueo logueo = new Logueo();
		logueo.setLogInReal(new Date());
		logueo.setLogOutReal(new Date());

		//logueo.setGrupo(usuario.getGrupo());
		logueo.setUsuario(usuario);
		//logueo.setExtension(sip.getExtension());

		//Employee employeeEncontrado = employeeDao.obtenerPorUsuario(usuario);
		//logueo.setEmployee(employeeEncontrado);
		logueo.setCampaign(usuario.getGestionCampaign());
		

		logueoDao.save(logueo);

		return logueo;
	}
	
	public void actualizaLogueo(Logueo logueo) {
		
		logueo.setLogOutReal(new Date());
		logueoDao.save(logueo);
		
	}
	
	public Break iniciaBreak(Logueo logueo, TipoBreak tipoBreak) {
		
		Break breaki = new Break();
		breaki.setInicio(new Date());
		breaki.setFin(new Date());
		breaki.setTipoBreak(tipoBreak);
		
		//breaki.setGrupo(usuario.getGrupo());
		breaki.setUsuario(logueo.getUsuario());
		
		//Employee employeeEncontrado = employeeDao
		//		.obtenerPorUsuario(logueo.getUsuario());
		//breaki.setEmployee(employeeEncontrado);
		
		breaki.setLogueo(logueo);
		
		breaki.setCampaign(logueo.getUsuario().getGestionCampaign());
		
		breakDao.save(breaki);
		
		return breaki;
	}

	
	public void actualizaBreak(Break breaki){
		breaki.setFin(new Date());
		breakDao.save(breaki);
	}
	
	

	public BreakDao getBreakDao() {
		return breakDao;
	}

	public void setBreakDao(BreakDao breakDao) {
		this.breakDao = breakDao;
	}

	

	public CampaignDao getCampaignDao() {
		return campaignDao;
	}

	public void setCampaignDao(CampaignDao campaignDao) {
		this.campaignDao = campaignDao;
	}

	public LogueoDao getLogueoDao() {
		return logueoDao;
	}

	public void setLogueoDao(LogueoDao logueoDao) {
		this.logueoDao = logueoDao;
	}

	public TipoBreakDao getTipoBreakDao() {
		return tipoBreakDao;
	}

	public void setTipoBreakDao(TipoBreakDao tipoBreakDao) {
		this.tipoBreakDao = tipoBreakDao;
	}
	
	
	

}
